-
If the bank references non-streamed sample data, call
Bank_LoadSampleData(bank)to request that sample data be loaded into memory. -
If assets are marked as streaming, they are streamed from disk and
Bank_LoadSampleDatawonβt pull them fully into RAM; streaming behavior is separate. -
Whether sample data is streamed or not is set by the sound designer in FMOD Studio, and cannot be changed at runtime
Non-Streaming Assets (embedded)
-
loaded into RAM when you call
Bank_LoadSampleData. -
Non-streamed = audio IS stored in the .bank (or in an assets bank)
-
.fsbfile = FMOD Sample Bank-
They store raw/compressed audio data when FMOD decides to externalize samples instead of embedding them into
.bankfiles. -
Old FMOD workflows β
.bank+.fsb -
New FMOD Studio workflows β
.bank+.assets.bankOR embedded data. -
Today,
.fsbfiles appear only in specific build configurations. -
They store:
-
PCM / ADPCM / Vorbis / Opus / etc audio data
-
Used for streaming or shared sample pools
-
Not event graphs, not metadata
-
-
-
Usual file system:
-
Inside the
my_project/Build/Desktop/
Master.bank Master.strings.bank Master.assets.bank Music.fsb SFX.fsb -
-
Why the
.bankcan be smaller than the original MP3s :-
FMOD re-encodes audio during build
-
FMOD does NOT embed your MP3 as-is.
-
During bank build it usually:
-
Decodes MP3 β PCM
-
Re-encodes into FMODβs chosen codec (often Vorbis or ADPCM)
-
Applies mono conversion / resampling / trimming
-
Removes MP3 container overhead
-
-
So the final encoded data can be smaller than the original MP3.
-
MP3 has container + metadata overhead.
-
Vorbis often compresses short SFX better than MP3.
-
-
Multiple sounds share compression efficiency
-
If you have multiple short sounds, FMOD may pack them efficiently into one binary block.
-
-
-
If the data is actually inside the .bank file, why does the sound play without calling Bank_LoadSampleData? :
-
Because
System_LoadBankFileloads the compressed audio bytes, and FMOD is allowed to decode/load samples lazily when an event is first played. -
Bank_LoadSampleDatadoes not load the bank file β it only prepares sample data in advance.
-
Streaming Assets
-
read from disk at runtime, not loaded into RAM by
Bank_LoadSampleData. -
Stream = audio is NOT stored in the .bank